package cn.minsh.lims.eoms.modules.app.controller.req;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.*;
import java.util.Date;
import java.util.List;

/**
 * @author Administrator
 */
@Data
@ApiModel("巡检计划")
public class InspectionPlanReq {

    @ApiModelProperty("计划id,修改时必填")
    private Long id ;

    @ApiModelProperty("巡检计划名称")
    @NotBlank(message = "巡检计划不能为空")
    @Size(min = 1,max = 20,message = "巡检名称长度1到20个字符")
    private String name;
    @ApiModelProperty("经办人")
    @NotEmpty(message = "经办人不能为空")
    private List<Long> agentIdList;
    @ApiModelProperty("首次开始时间")
    @NotNull(message = "首次开始时间不能为空")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date firstStartTime;
    @ApiModelProperty("首次结束时间")
    @NotNull(message = "首次结束时间不能为空")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date firstEndTime;
    @ApiModelProperty("巡检频率：1每日2每周3每月4每年5不重复（只提醒一次）6工作日")
    @Min(value = 1,message = "最小为1")
    @Max(value = 6,message = "最大为6")
    private Integer frequency;
    @ApiModelProperty("计划状态：0：未开始1进行中2已结束。根据当前时间跟首次开始时间处理")
    @Min(value = 0,message = "最小为0")
    @Max(value = 2,message = "最大为2")
    private Integer status;
    @ApiModelProperty("失效时间")
    private Date invalidTime;

    @ApiModelProperty("巡检范围,巡检范围id（Long）列表")
    @NotEmpty(message = "巡检范围不能为空")
    private List<Long> planScopeList ;
    @ApiModelProperty("巡检提醒，整数列表")
    private List<Integer> planRemindList ;
    @ApiModelProperty("巡检内容，字符串列表")
    @NotEmpty(message = "巡检内容不能为空")
    private List<String> planContentList ;

    @ApiModelProperty("发起人，后端获取")
    private Long createBy ;

}
